/**********************************************************************************************************
** 驱动文件：	menjin-MJ100.c
** 驱动类型：	menjin
** 设备名称：	门禁监测
** 设备型号：	MJ100
** 设备品牌：	融智云
** 设备协议：	开关量信号
** 驱动描述：	门禁监测可实现开关门状态监测、开门信号监测、远程开门控制、开门和关门记录。
** 生成日期：	2020-04-27 18:49:49
**********************************************************************************************************/
#include "Includes.h"


/**********************************************************************************************************
* 定义设备数据点变量结构
**********************************************************************************************************/
typedef struct{
	Var OpenDoorSignal;							//开门信号
	Var DoorStatus;								//门状态	
	Var RemoteDoorOpen;							//远程开门
}Data_Struct;									//定义变量结构


/**********************************************************************************************************
* 设备数据点变量属性声明
**********************************************************************************************************/
const static Var_Property_Def var_attr[] = {
	{
		BOOLEAN,
		0,
		READONLY,
		"DoorLockStatus",
		"门锁状态",
		"",
		"门锁控制信号状态",
		1,
		0,
		"门锁解除状态",
		"",
		0,
		0
	},
	{
		BOOLEAN,
		0,
		READONLY,
		"DoorStatus",
		"门状态",
		"",
		"门当前状态",
		1,
		0,
		"开门",
		"",
		0,
		0
	},	
	{
		BOOLEAN,
		0,
		READWRITE,
		"RemoteDoorOpen",
		"远程开门",
		"",
		"远程开门控制",
		1,
		0,
		"",
		"",
		0,
		0
	}
};


/**********************************************************************************************************
* 函数名称： static void cmd_fun(short index, int addr, void *data, char *cmd, short *len)
* 函数说明： 生成获取传感器数据指令
* 输入参数： 指令索引，传感器地址，变量结构体指针,以及指令缓存区指针,指令长度
* 返回参数： 无
**********************************************************************************************************/
static void cmd_fun(short index, int addr, void *data, char *cmd, short *len)
{
	switch(index)
	{
		case 0:
			
			break;
		case 1:
			
			break;
		default:
			break;
	}
}


/**********************************************************************************************************
* 函数名称： static int parse_fun(short index, int addr, void *data, char *buf, short len)
* 函数说明： 解析传感器响应的数据，并写入数据库
* 输入参数： 解析索引,传感器地址，变量结构体指针，以及响应数据缓存取指针，响应数据长度
* 返回参数： 返回解析结果，返回0成功，返回1失败
**********************************************************************************************************/
static int parse_fun(short index, int addr, void *data, char *buf, short len)
{
//	Data_Struct	*d = (Data_Struct*)data;

	if(buf!=NULL && len>0 )
	{
		switch(index)
		{
			case 0:
				
				break;
			case 1:
				
				break;
			default:
				break;
		}
		return 0;
	}
	return 1;
}


/**********************************************************************************************************
* 函数名称： void menjin_MJ100_Registration(void)
* 函数说明： 门禁监测驱动注册
* 输入参数： 无
* 返回参数： 无
**********************************************************************************************************/
void menjin_MJ100_Registration(void)
{
	DeviceRegWithResTimeout(
		"menjin",												//设备类型
		"门禁监测",												//设备名称（导航栏默认显示名称）
		"MJ100",												//设备型号
		"门禁监测可实现开关门状态监测、开门信号监测、远程开门控制、开门和关门记录。",//驱动描述
		var_attr,												//变量属性声明
		sizeof(Data_Struct),									//变量结构体空间大小
		cmd_fun,												//发送指令生成函数
		parse_fun,												//数据解析函数
		250														//设备响应超时时间
	);
}

